package com.path.planning.entity.path;

import io.swagger.annotations.ApiModelProperty;

import java.util.List;

/**
 * 路径规划条件参数
 */
public class NavigationQo {
    /**
     * 起点经度
     */
    @ApiModelProperty(value = "起点经度", required = true)
    private Double sourceLon;
    /**
     * 起点纬度
     */
    @ApiModelProperty(value = "起点纬度", required = true)
    private Double sourceLat;
    /**
     * 起点对应拓扑节点ID
     */
    @ApiModelProperty(hidden = true)
    private Integer sourceId;
    /**
     * 终点经度
     */
    @ApiModelProperty(value = "终点经度", required = true)
    private Double targetLon;
    /**
     * 终点纬度
     */
    @ApiModelProperty(value = "终点纬度", required = true)
    private Double targetLat;
    /**
     * 终点对应拓扑节点ID
     */
    @ApiModelProperty(hidden = true)
    private Integer targetId;
    /**
     * 经停点
     */
    @ApiModelProperty("经停点")
    private List<PointDto> stopPoints;
    /**
     * 避让区域
     */
    @ApiModelProperty("避让区域")
    private List<AvoidScopeDto> avoidScopes;
    /**
     * 载具高度
     */
    @ApiModelProperty("载具高度")
    private Double height;
    /**
     * 船舶涉水深度
     */
    @ApiModelProperty("船舶涉水深度")
    private Double depth;
    /**
     * 载具重量/船舶吨位
     */
    @ApiModelProperty("载具重量/船舶吨位")
    private Double weight;
    /**
     * 载具宽度/船舶宽度
     */
    @ApiModelProperty("载具宽度/船舶宽度")
    private Double width;

    public NavigationQo() {
    }

    public NavigationQo(Integer sourceId, Integer targetId, List<AvoidScopeDto> avoidScopes, Double height, Double weight, Double width, Double depth) {
        this.sourceId = sourceId;
        this.targetId = targetId;
        this.avoidScopes = avoidScopes;
        this.height = height;
        this.weight = weight;
        this.width = width;
        this.depth = depth;
    }

    public Double getDepth() {
        return depth;
    }

    public void setDepth(Double depth) {
        this.depth = depth;
    }

    public Integer getSourceId() {
        return sourceId;
    }

    public void setSourceId(Integer sourceId) {
        this.sourceId = sourceId;
    }

    public Integer getTargetId() {
        return targetId;
    }

    public void setTargetId(Integer targetId) {
        this.targetId = targetId;
    }

    public Double getSourceLon() {
        return sourceLon;
    }

    public void setSourceLon(Double sourceLon) {
        this.sourceLon = sourceLon;
    }

    public Double getSourceLat() {
        return sourceLat;
    }

    public void setSourceLat(Double sourceLat) {
        this.sourceLat = sourceLat;
    }

    public Double getTargetLon() {
        return targetLon;
    }

    public void setTargetLon(Double targetLon) {
        this.targetLon = targetLon;
    }

    public Double getTargetLat() {
        return targetLat;
    }

    public void setTargetLat(Double targetLat) {
        this.targetLat = targetLat;
    }

    public List<PointDto> getStopPoints() {
        return stopPoints;
    }

    public void setStopPoints(List<PointDto> stopPoints) {
        this.stopPoints = stopPoints;
    }

    public List<AvoidScopeDto> getAvoidScopes() {
        return avoidScopes;
    }

    public void setAvoidScopes(List<AvoidScopeDto> avoidScopes) {
        this.avoidScopes = avoidScopes;
    }

    public Double getHeight() {
        return height;
    }

    public void setHeight(Double height) {
        this.height = height;
    }

    public Double getWeight() {
        return weight;
    }

    public void setWeight(Double weight) {
        this.weight = weight;
    }

    public Double getWidth() {
        return width;
    }

    public void setWidth(Double width) {
        this.width = width;
    }
}
